package com.dao;

import com.entity.SignTask;
import com.form.signTask.PageListSignTask;
import com.vo.signTask.DisplaySignTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * Version: V1.0    <br/>
 * Datetime:   2022/5/13 22:11   <br/>
 * Description: ${DES}
 *
 * @author: chen
 */
@Mapper
public interface SignTaskMapper {
    int deleteByPrimaryKey(Long id);

    /**
     * 插入一条签到任务
     *
     * @param record 签到任务
     * @return 自增主键
     */
    int insert(SignTask record);

    int insertSelective(SignTask record);

    SignTask selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SignTask record);

    int updateByPrimaryKey(SignTask record);

    /**
     * 查询签到任务列表数量
     *
     * @param queryCondition 查询条件
     * @param startTime      开始时间
     * @param endTime        结束时间
     * @return 签到任务列表数量
     */
    Long counterSignTask(@Param("queryCondition") PageListSignTask queryCondition,
                         @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 查询签到任务列表
     *
     * @param queryCondition 查询条件
     * @param startTime      开始时间
     * @param endTime        结束时间
     * @return 签到任务列表
     */
    List<SignTask> pageListSignTask(@Param("queryCondition") PageListSignTask queryCondition,
                                    @Param("offSet") Integer offSet, @Param("pageSize") Integer pageSize,
                                    @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    List<SignTask> getStudentSignTask(@Param("userId") Long userId, @Param("today") Date today);
}